কাস্টম সার্ভিস তৈরি করা

Web Development - অ্যাপাচি ট্যাপেস্ট্রি (Apache Tapestry) - Tapestry এবং Services |

Apache Tapestry একটি শক্তিশালী Inversion of Control (IoC) কন্টেইনার সরবরাহ করে, যা ডেভেলপারদের জন্য অ্যাপ্লিকেশন সার্ভিসগুলিকে সহজে তৈরি, কনফিগার এবং পরিচালনা করতে সহায়তা করে। Tapestry এর Service Layer মূলত বিভিন্ন সার্ভিস এবং ডিপেন্ডেন্সি ইঞ্জেকশনের মাধ্যমে অ্যাপ্লিকেশনের কার্যকারিতা ম্যানেজ করে।

এই টিউটোরিয়ালে, আমরা দেখব কিভাবে Tapestry তে custom services তৈরি করতে হয় এবং তা কিভাবে IoC কন্টেইনারে নিবন্ধিত (register) করতে হয়।


কাস্টম সার্ভিস তৈরি করা

Tapestry তে কাস্টম সার্ভিস তৈরি করার জন্য আপনাকে কিছু নির্দিষ্ট পদক্ষেপ অনুসরণ করতে হবে। নিচে ধাপে ধাপে কাস্টম সার্ভিস তৈরি করার প্রক্রিয়া ব্যাখ্যা করা হলো।

১. সার্ভিস ক্লাস তৈরি করা

প্রথমে, একটি Java ক্লাস তৈরি করুন যা আপনার সার্ভিসের লজিক ধারণ করবে। এটি সাধারনত service layer-এর অংশ হিসেবে কাজ করবে।

উদাহরণস্বরূপ, একটি UserService তৈরি করা হল, যা ব্যবহারকারীর তথ্য প্রসেস করবে।

UserService.java:

package com.example.services;

public class UserService {

    public String getUserInfo(String username) {
        // সাধারন লজিক যা ব্যবহারকারীর তথ্য ফেরত দেয়
        return "User Info for: " + username;
    }
}

এটি একটি সাধারণ UserService ক্লাস যা ব্যবহারকারীর তথ্য ফেরত দেয়।

২. সার্ভিস নিবন্ধন (Registering Service)

আপনার কাস্টম সার্ভিসকে Tapestry এর IoC (Inversion of Control) কন্টেইনার এ নিবন্ধন করতে হবে। এটি সাধারণত AppModule ক্লাসে করা হয়, যেখানে সার্ভিসের binding বা configuration করা হয়।

AppModule.java:

package com.example.services;

import org.apache.tapestry5.ioc.ServiceBinder;

public class AppModule {
    
    // Service registration
    public static void bind(ServiceBinder binder) {
        binder.bind(UserService.class, UserService.class);
    }
}

এখানে, binder.bind(UserService.class, UserService.class) এর মাধ্যমে UserService ক্লাসটিকে Tapestry এর IoC কন্টেইনারে নিবন্ধিত (bind) করা হচ্ছে। এটি Tapestry এর সার্ভিস কন্টেইনারে UserService কে উপলব্ধ করে দেয়, যাতে আপনি যেকোনো জায়গা থেকে এই সার্ভিসটি ইনজেক্ট করতে পারেন।

৩. সার্ভিস ব্যবহার করা (Injecting the Service)

একবার সার্ভিসটি নিবন্ধিত হলে, আপনি এটি Tapestry পেজ বা কম্পোনেন্টে ইনজেক্ট করতে পারেন এবং সার্ভিসের মেথড ব্যবহার করতে পারেন। Tapestry ইনজেকশন পরিচালনার জন্য @Inject অ্যানোটেশন ব্যবহার করে।

UserPage.java (পেজ ক্লাসে সার্ভিস ইনজেকশন):

package com.example.pages;

import com.example.services.UserService;
import org.apache.tapestry5.annotations.Inject;

public class UserPage {

    @Inject
    private UserService userService; // সার্ভিস ইনজেক্ট করা হয়েছে

    private String username;

    // এই মেথডটি ব্যবহারকারীর ইনফো ফেচ করতে কাজ করবে
    public String getUserInfo() {
        return userService.getUserInfo(username); // সার্ভিসের মেথড কল
    }

    public void setUsername(String username) {
        this.username = username;
    }
}

এখানে:

  • @Inject অ্যানোটেশন ব্যবহার করে UserService ইনজেক্ট করা হয়েছে।
  • getUserInfo() মেথডে UserService এর getUserInfo() মেথড কল করা হচ্ছে।

৪. সার্ভিস ব্যবহারকারীর পেজে (Service Used in Tapestry Page)

এখন, Tapestry পেজে আপনি এই সার্ভিসের মাধ্যমে ব্যবহারকারীর ইনফো ফেচ করতে পারবেন। নিচে UserPage পেজের HTML টেমপ্লেট দেওয়া হলো:

userpage.tml (HTML টেমপ্লেট):

<html xmlns:t="http://tapestry.apache.org/schema/tapestry_5_3.xsd">
    <head>
        <title>User Info Page</title>
    </head>
    <body>
        <h2>Welcome to User Info Page</h2>
        
        <t:form t:id="userForm">
            <t:label value="Username" for="username" />
            <t:textfield t:id="username" value="username" />
            
            <t:button t:id="fetchButton" value="Fetch User Info" />
        </t:form>

        <h3>User Info:</h3>
        <p>${userInfo}</p>
    </body>
</html>

এখানে, username ইনপুট ফিল্ড থেকে ডেটা নেয়া হবে এবং userInfo ভ্যারিয়েবল ব্যবহারকারীর তথ্য প্রদর্শন করবে, যা সার্ভিসের মাধ্যমে ফেচ করা হবে।

৫. সার্ভিসের মেথডে ব্যবহারকারী ইনপুট প্রক্রিয়া করা

UserPage.java মেথডে, আমরা onSubmit মেথডে ইনপুট তথ্য প্রক্রিয়া করব:

public void onSubmitFromUserForm() {
    userInfo = userService.getUserInfo(username); // সার্ভিস কল এবং ইনফো পাওয়ার জন্য
}

এখানে:

  • onSubmitFromUserForm() মেথড ফর্ম সাবমিট হলে কল হবে এবং ব্যবহারকারীর ইনফো UserService থেকে ফেচ করা হবে।

সারাংশ

Tapestry ফ্রেমওয়ার্কে custom services তৈরি করা এবং IoC (Inversion of Control) কন্টেইনারে সেগুলিকে নিবন্ধিত করা খুবই সহজ। AppModule ক্লাসে সার্ভিস নিবন্ধন, সার্ভিস ক্লাস তৈরি এবং @Inject অ্যানোটেশন দিয়ে সার্ভিস ইনজেকশন ব্যবহারের মাধ্যমে আপনি দ্রুত সেবা প্রদানকারী কার্যক্রম তৈরি করতে পারেন। Tapestry এর IoC কন্টেইনার আপনার সার্ভিস গুলি পরিচালনা করে এবং ডিপেন্ডেন্সি ম্যানেজমেন্ট সহজ করে তোলে।

Content added By
Promotion